#include <stdio.h>
#include <stdlib.h>
#include "listetours.h"

int initNbTours(ListeTours *pListeTours)
{
    return pListeTours->nbTours = 0;
}

int getNbTours(ListeTours *pListeTours)
{
    return pListeTours->nbTours;
}

void setNbTours(ListeTours *pListeTours, const int nouveauNbTours)
{
     pListeTours->nbTours = nouveauNbTours;
}

Tour* getTour(ListeTours *pListeTours, int id)
{
    return(pListeTours->tabTours[id]);
}

void initTabTours(ListeTours *pListeTours)
{
     int i;
     for(i=0;i<30;i++)
     {
                       pListeTours->tabTours[i] = 0;
     }
}

void ajouterTour(ListeTours *pListeTours, Tour *pTour)
{
     int nbTours;
     nbTours = getNbTours(pListeTours);

     pListeTours->tabTours[nbTours] = pTour;

     pListeTours->nbTours = pListeTours->nbTours+1;
}

void supprimerTour(ListeTours *pListeTours, int id)
{
     int nbTours;
     Tour *tour;

     nbTours=getNbTours(pListeTours);


     if(id<nbTours-1)
     {
         for(id=id;id<nbTours-1;id++)
         {
             tour=getTour(pListeTours, id+1);
             setTourId(tour, id);
             pListeTours->tabTours[id]=tour;
         }

         tour=pListeTours->tabTours[nbTours-1];
         tour=NULL;

         free(tour);

         pListeTours->nbTours=pListeTours->nbTours-1;
      }

      else
      {
          tour=pListeTours->tabTours[id];
          tour=NULL;

          free(tour);

          pListeTours->nbTours=pListeTours->nbTours-1;
      }

}


ListeTours* nouvelleListeTours()
{
    ListeTours* listetours;
    Tour* tour;

    listetours=(ListeTours*) malloc (sizeof(ListeTours));

    initNbTours(listetours);
    initTabTours(listetours);

    return(listetours);
}

void libereListeTours(ListeTours *pListeTours)
{
    int nbTours,i;
    nbTours=getNbTours(pListeTours);
    for(i=0;i<nbTours;i++)
    {
      supprimerTour(pListeTours,i);
    }

    free(pListeTours);
}





